package models

import (
	"database/sql"
	"time"
)

// Device 设备模型
// 包含网关设备及其子设备的元数据
// @gorm:"devices"
type Device struct {
	ID              int            `gorm:"primaryKey;autoIncrement" json:"id"`
	TenantID        string         `gorm:"column:tenant_id;not null;index" json:"tenant_id"`
	DeviceID        string         `gorm:"column:device_id;not null;uniqueIndex" json:"device_id"`
	Type            string         `gorm:"column:type;not null;default:'sensor'" json:"type"`
	Status          string         `gorm:"column:status;not null;default:'offline'" json:"status"`
	Latitude        float64        `gorm:"column:latitude" json:"latitude"`
	Longitude       float64        `gorm:"column:longitude" json:"longitude"`
	IsGateway       bool           `gorm:"column:is_gateway;default:false" json:"is_gateway"`
	ParentGatewayID sql.NullInt64  `gorm:"column:parent_gateway_id;index" json:"parent_gateway_id"`
	Metadata        sql.NullString `gorm:"column:metadata;type:jsonb" json:"metadata"`
	CreatedAt       time.Time      `gorm:"column:created_at;default:CURRENT_TIMESTAMP" json:"created_at"`
	UpdatedAt       time.Time      `gorm:"column:updated_at;default:CURRENT_TIMESTAMP" json:"updated_at"`
}
